﻿
<?php

  
 
function get_tag_list($path)
{
   $rarr = null ; // массив , необходимые индексы для которого и выясеняет данная функция читая их из файла
   $str=""; // строка в которую будет помещаться имя каждого тэга считанного из текстового файла
   
   $fdata = open_file($path,"r");
   while (!feof($fdata)) // запускаем скрипт и ограничиваем число команд ,которое хотим обработать, для этого добавте в условие -&&($i<=12) - если это необходимо.
  {    
		$simb = fgetc($fdata); // читаем файл посимвольно.
		if  (($simb !="\r")&&($simb !="\n")) $str = $str.$simb;
		else if ($simb == "\r") 
		{
		 $rarr[$str]=null;
		$str="";
		}
    }
	return $rarr;
   
}

// array_flip  - меняет в массиве местами ключи и значения- можно с помощью этой функции , в качестве ключей многомерного массива  разместить папки.

function get_inff_dir($dirpath) // получаем всю метаинормацию из указанной директории.
{
   $rarr = null ; // массив , необходимые индексы для которого и выясеняет данная функция читая их из файла
   $str=""; // строка в которую будет помещаться имя каждого тэга считанного из текстового файла
   
   if ($rarr = scandir($dirpath))
   {
     array_flip($rarr);
	 foreach ($rarr as $key=>$value)
	 {$rarr[$key]=array ("dfg"=>"fds");}
	 $isinfo=FALSE;
 
   }
   
   $fdata = open_file($path,"r");
   while (!feof($fdata)) // запускаем скрипт и ограничиваем число команд ,которое хотим обработать, для этого добавте в условие -&&($i<=12) - если это необходимо.
  {    
		$simb = fgetc($fdata); // читаем файл посимвольно.
		if  (($simb !="\r")&&($simb !="\n")) $str = $str.$simb;
		else if ($simb == "\r") 
		{
		 $rarr[$str]=null;
		$str="";
		}
    }
	return $rarr;
   
}

function meta_arr_fill($tagarr,$str)  // эта функция с помощью регулярных выражений найдёт строку , заключённую в тэги, вида(открывающий != закрывающий)[тэг] != [\тэг]
{
   foreach  ($tagarr as $key=>$value)
   {
      if ($inf=info_in_tags_get($key,$str)) 
		 {  
		    $tagarr[$key]=$inf;
         }
	  }
   return $tagarr;
}



 function info_in_tags_get($tagname,$str)  // эта функция с помощью регулярных выражений найдёт строку , заключённую в тэги, вида(открывающий != закрывающий)[тэг] != [\тэг]
  {
  
    $oppart = "(\[".$tagname."\]|\[".$tagname."=\".{0,}\"\])"; // регулярное выражение для открывающего тэга
    $clpart = "(\[\\\\".$tagname."\])"; //регулярное выражение для закрывающего тэга.
    $pattern = "(".$oppart.".*".$clpart.")is"; // шаблон-результат - процесс поиска не зависит от регистра и производится по всему тексту.
	if (preg_match($pattern,$str,$matches)==1)
	 {  $ert = $oppart."is";
	    $matches[0] = preg_replace($ert,"",$matches[0]); // удаляем из найдённого фрагмента открывающий тэг
		$matches[0]=preg_replace($clpart,"",$matches[0]); // удаляем из найдённого фрагмента закрывающий  тэг
		

	
	    return $matches[0];
	 }
	 else return false;

  }
  
?>